import QtQuick
import QtQuick.Controls 2.15

Window {
    id: window
    width: 640
    height: 480
    visible: true
    title: qsTr("三国勇将志")

    // 背景
    BackgroundView{
        width: parent.width
        height: parent.height
    }

    // 人物状态界面 未完成
    // 基础属性
    ListView {
        id: baseFeature
        width: 200
        height: 100
        anchors.left: parent.left
        anchors.top: parent.top
        anchors.leftMargin: 10
        anchors.topMargin: 10
        interactive: false // 禁止滚动

        // 根骨：升级时增加更多的能力
        // 体魄: 增加生命值，防御，抗性
        // 灵巧：增加速度, 增加闪避，命中
        // 胆识：增加暴击
        // 精神：增加内力
        // 属性数据 - 名称和值配对
        property var attributes: {
            "姓名": "张三丰",
            "根骨": 95,
            "体魄": 85,
            "灵巧": 90,
            "胆识": 66,
            "精神": 50,
            "等级": 1,
            "经验": 0
        }

        model: {
            var arr = [];
            // 添加其他属性
            for (var key in attributes) {
                arr.push({
                             "name": key,
                             "value": attributes[key],
                         });
            }
            return arr;
        }

        // 网格布局
        GridView {
            anchors.fill: parent
            cellWidth: parent.width / 2
            cellHeight: parent.height / 4

            model: baseFeature.model
            delegate: Item {
                width: baseFeature.width / 2
                height: baseFeature.height / 4

                Rectangle {
                    anchors.fill: parent
                    anchors.margins: 1
                    color: index % 4 < 2 ? "#4a4e69" : "#22223b"
                    radius: 4
                    opacity: 0.8

                    Row {
                        anchors.fill: parent
                        anchors.leftMargin: 1
                        spacing: 5

                        // 属性名
                        Text {
                            width: baseFeature.width / 5
                            text: modelData.name + ":"
                            color: "#f2e9e4"
                            font.pixelSize: 14
                            font.bold: true
                            horizontalAlignment: Text.AlignRight
                        }

                        // 属性值
                        Text {
                            text: {
                                if (typeof modelData.value === "number") {
                                    return modelData.value + "/100";
                                }
                                return modelData.value;
                            }
                            color: {
                                if (typeof modelData.value === "number") {
                                    return "#FFD700"
                                }
                                return "#f2e9e4";
                            }
                            font.pixelSize: 14
                            topPadding: typeof modelData.value === "number"? 3: 0
                        }
                    }
                }
            }
        }
    }

    // 高级属性
    Button {
        id: button
        x: 18
        y: 123
        text: qsTr("装备")
    }

    Button {
        id: button1
        x: 113
        y: 123
        text: qsTr("背包")
    }

    ListView {
        id: highFeature
        width: 200
        height: 120
        anchors.left: parent.left
        anchors.top: baseFeature.bottom
        anchors.leftMargin: 10
        anchors.topMargin: 50

        // 透劲：无视防御, 可被 免伤 抵抗
        // 免伤：防御计算之后再减去免伤才是最后伤害
        // 暴伤率：默认100，超过100的才是增幅，低于100是降幅
        // 暴击率：不超过100
        // 闪避率：最高99
        // 命中率：最高100，只要命中率减去闪避率大于等于0就是必中，不用计算概率
        model: ["气血", "内力", "攻击", "防御", "透劲", "命中率", "闪避率", "暴击率", "暴伤率", "抗性", "速度", "免伤"]
    }


    // 主要界面 未完成
    // 后续所有的打斗，冒险都在这里完成，其他界面就不要动了

    Rectangle {
        x: 230
        y: 0
        width: 400
        height: 270
        anchors.right: parent.right
        anchors.top: parent.top
        anchors.rightMargin: 10
        anchors.topMargin: 10
    }

    // 技能界面

    SkillView {
        objectName: "skill"

        id: listView
        width: 200
        height: 160
        anchors.left: parent.left
        anchors.bottom: parent.bottom
        anchors.leftMargin: 10
        anchors.bottomMargin: 20
    }

    // 日志界面

    LogView {
        objectName: "log"

        id: logView
        width: 400
        anchors.right: parent.right
        anchors.top: listView.top
        anchors.rightMargin: 10
        anchors.topMargin: 0
    }

    Component.onCompleted: {
        logView.addLog("你好，欢迎来到三国勇将志！！！", "red")
    }
}
